A host system may execute many groups of operations through a particular device or vice versa. These sets of operations must be tested with varying parameters of execution to fully test device functionality to ensure reliability of operation. Although many devices may be tested with the same set of tests and test parameters, the methods of hardware execution may be different. Thus, it may be necessary to run a set of tests with varying parameters in a specific order, frequently (such as daily regression tests), or simultaneously. Even equipment with diagnostic ports may require non-trivial testing in which separate test codes must be written for different components of a device under test even if the same feature, such as the data integrity of an internal memory, is being tested.
Current device testing is performed by one of two methods. The first method requires that the test be written from scratch. The operator must understand the intricacies of the device being tested, have competent knowledge of programming skills, and be versed in the testing methodology. Thus, the first method requires intensive effort and limits the number of people who can test the device. The second method involves the creation and use of a set of library functions using an existing programming language capable of performing complex operations. Many executable files may be created that are then hard to track and document. The test writer also must master the programming language the executable files are written in and understand the functions and operations the executable files perform. The second method requires that the library functions be compiled and, perhaps, linked. The second method also requires considerable time and effort from the test writer.
Therefore, it would be desirable to provide a programming language that facilitates device validation and a method and system that uses the programming language.